In communications networks, packets may be buffered on a queue before they are processed. When the incoming rate of the packets is higher than the rate at which the packets can be processed, the queue size may grow. If the packets are incoming at rate that is consistently larger than the processing rate, the queue size may grow beyond a desired length for the queue, resulting in network congestion.
One conventional approach to network traffic management may to drop packets once the queue size exceeds a certain threshold. This may be referred to as tail drop. If the dropped packets belong to a TCP flow, this may trigger TCP congestion control, forcing the TCP flow to reduce its packet sending rate significantly. This may allow the network to recover from congestion. However, when all TCP flows are triggered to slow down at the same time, i.e. global synchronization occurs, the network may suddenly be uncongested. If the queue size threshold for triggering the slow down is not sufficiently high, the processing rate may drain the queue before the TCP flows sending rates recover, which may cause the network link to be underutilized. Additionally, if the queue size threshold is too high, when the network is in equilibrium status, i.e., the incoming rate of packets is equal to the processing rate, there may be unnecessary packet delay.
Active Queue Management (AQM) may be used to address global synchronization and network underutilization by probabilistically dropping packets based on the queue size. If a packet is dropped, the TCP source may trigger congestion avoidance, for example, additive increase multiplicative decrease (AIMD), with probabilities based on different queue sizes. This may be referred to as random early detection (RED). RED may allow for fast response and autonomous rate control. However, RED may also lead to oscillation in queue size and unwanted larger packet dropping rates.
Communication networks may use Performance Enhancing Proxy (PEP) to mitigate the link-related degradations due to round trip delay, error prone environment, and time varying (non-deterministic) bandwidth. For example, in a satellite network, a PEP may be a proxy spoofer, which may be used to mitigate long latency impact due to propagation. A TCP packet may be ACKed by the proxy spoofer before arriving at its destination. When the traffic conditions on the satellite link change, the spoofer may increase or decrease an advertised TCP window size such that the TCP source can scale up or down the sending rate. A queuing delay target may be associated with the spoofed packets. When the queuing delay is higher than the target, the spoofer may reduce the advertised TCP window size; otherwise, it may increase the window size. This may be referred to as window size adjustment. Window size adjustment may not need to drop packets, but may be slow in response to the network status. In addition, oscillation in queue size may occur and the convergence to the target set point can be sensitive to the step size.